package com.enjoyor.soa.traffic.api.service.dubbo.bigdata;

import com.enjoyor.soa.traffic.util.pojo.Page;
import com.enjoyor.soa.traffic.util.pojo.ResultPojo;

import java.util.Date;

/**
 * 伴随车分析服务
 */
public interface DubboAnalyzeAccomService {

	/**
	 * 对伴随车进行分析并获取分页结果
	 *
	 * @param licenseType 号牌类型
	 * @param licenseNum 号牌号码
	 * @param poIntegers 最少同行卡口数
	 * @param seconds 最少伴随时间（秒）
	 * @param accomType 伴随类型（0：无断点；1：有断点）
	 * @param startDay 分析起始日期
	 * @param endDay 分析截止日期
	 * @param includeTaxi 伴随车中是否含出租车
	 * @param page 分页
	 * @return Page &lt; AccomVehicleDto &gt; ：包含伴随车信息 的分页集合
	 */
	public ResultPojo analyzeAccomVehicle(String token, String licenseType, String licensNum, Integer poIntegers, Integer seconds, String accomType, Date startDay, Date endDay, boolean includeTaxi, Page page);


	/**
	 * 导出伴随车分析结果
	 *
	 * @param licenseType 号牌类型
	 * @param licenseNum 号牌号码
	 * @param poIntegers 最少同行卡口数
	 * @param seconds 最少伴随时间（秒）
	 * @param accomType 伴随类型（0：无断点；1：有断点）
	 * @param startDay 分析起始日期
	 * @param endDay 分析截止日期
	 * @param includeTaxi 伴随车中是否含出租车
	 * @param startIndex 导出起始数据，默认 1
	 * @param endIndex 导出起始数据，默认 5000
	 * @return List &lt; AccomVehicleDto &gt; ：包含伴随车信息 的集合
	 */
	public ResultPojo expAccomVehicle(String token, String licenseType, String licenseNum, Integer poIntegers, Integer seconds, String accomType, Date startDay, Date endDay, boolean includeTaxi);
	public ResultPojo expAccomVehicle(String token, String licenseType, String licenseNum, Integer poIntegers, Integer seconds, String accomType, Date startDay, Date endDay, boolean includeTaxi,int startIndex,int endIndex);

	/**
	 * 伴随车分析结果 总记录数
	 *
	 * @param token
	 * @param licenseType 号牌类型
	 * @param licenseNum 号牌号码
	 * @param poIntegers 最少同行卡口数
	 * @param seconds 最少伴随时间（秒）
	 * @param accomType 伴随类型（0：无断点；1：有断点）
	 * @param startDay 分析起始日期
	 * @param endDay 分析截止日期
	 * @param includeTaxi 伴随车中是否含出租车
	 * @return 总记录数
	 */
	public ResultPojo countAccomVehicle(String token, String licenseType, String licenseNum, Integer poIntegers, Integer seconds, String accomType, Date startDay, Date endDay, boolean includeTaxi);

}
